package com.hare.harelearn.DataStructure.AlgorithmExercises.十大排序;

import com.alibaba.fastjson.JSON;

/**
 * @program: HareLearn
 * @description: 插入排序
 * @author: Hare
 * @create: 2025−05-26 16:08
 * @Version 1.0
 **/
public class InsertSortLearn {
    public static void main(String[] args) {
        insertSort(new int[]{5,6,10,3,1,85});
    }


    /**
     * 插入排序
     * @param arr
     */
    public static void insertSort(int[] arr){
        int length = arr.length;
        for (int i = 0; i < length - 1; i++) {
            // 有序元素
            int sort = i;
            // 待插入的元素值
            int insert = arr[i + 1];
            for (int j = i + 1 ; j > 0 && arr[sort] > insert; j--) {
                //  如果待插入的元素小于有序元素，则将有序元素后移
                arr[j] = arr[sort];
                sort--;
            }

            if(sort != i){
                arr[sort + 1] = insert;
            }
        }
        System.out.println(JSON.toJSONString(arr));
    }
}
